package com.serviportales.contactenos.dao;

import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Repository;

import com.serviportales.contactenos.model.MotivoContacto;
import com.serviportales.serviportales.dao.GenericHibernateDAO;

@Repository
public class MotivoContactoDAO extends GenericHibernateDAO<MotivoContacto> {

	private static final long serialVersionUID = 1L;

	@Override
	public DetachedCriteria getBasicDetachedCriteria(MotivoContacto motivoContacto) {
		DetachedCriteria criteria = DetachedCriteria.forClass(MotivoContacto.class);
		if (motivoContacto.getCodigo() != null) {
			criteria.add(Restrictions.ilike("codigo", motivoContacto.getCodigo(), MatchMode.ANYWHERE));
		}
		if (motivoContacto.getNombre() != null) {
			criteria.add(Restrictions.ilike("nombre", motivoContacto.getNombre(), MatchMode.ANYWHERE));
		}
		if (motivoContacto.getDescripcion() != null) {
			criteria.add(Restrictions.ilike("descripcion", motivoContacto.getDescripcion(), MatchMode.ANYWHERE));
		}
		if (motivoContacto.getEstadoRegistro() != null && motivoContacto.getEstadoRegistro().getCodigo() != null) {
			criteria.add(Restrictions.eq("estadoRegistro.codigo", motivoContacto.getEstadoRegistro().getCodigo()));
		}
		return criteria;
	}

	public MotivoContacto selectByID(String codigo) {
		return getHibernateTemplate().get(MotivoContacto.class, codigo);
	}
}
